<?php
	// On prolonge la session
	session_start();
	
	$id_anim='';
	$code='';
	$message='';
	
	require_once dirname(__FILE__) . "/../../includes/config.php";
	require_once PHP_ROOTPATH.'/classes/database.php';
	
	$idconnect = Database::getInstance();
	
	//vérification des droits de l'utilisateur
	$querytest = pg_query($idconnect,"SELECT * FROM droit_utilisateur WHERE (id_droit=13 or  id_droit=1 ) and id_user=".$_SESSION['membre_id']);
	$saise_irm = pg_num_rows($querytest);
	if(isset($_SESSION['membre_id']) && $saise_irm != 0){
			
		// On teste si la variable de session existe et contient une valeur
		if(empty($_SESSION['id_anim'])){
			// Si inexistante ou nulle, on redirige vers le formulaire de login
			header('Location: ../saisie.php');
			exit();
		}
		else{
			$id_anim=$_SESSION['id_anim'];
			$code=$_SESSION['code'];
		}
		
		// Remplissage de la base de données
		if(!empty($_POST)){
			//vérification que les champs ont bien été remplis
			if($_POST['date']=="none" || $_POST['exp']=="none" || empty($_POST['in_vivo']) || empty($_POST['diag']) || empty($_POST['loc'])){
				$message = 'Veuillez entrer les informations générales de l\'IRM!';
			}
			else{
				$_POST['date'] = htmlspecialchars($_POST['date']);
				$_POST['exp'] = htmlspecialchars($_POST['exp']);
				$_POST['in_vivo'] = htmlspecialchars($_POST['in_vivo']);
				$_POST['diag'] = htmlspecialchars($_POST['diag']);
				$_POST['loc'] = htmlspecialchars($_POST['loc']);
				
				if(preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date'])){
					//récupération de l'id_type_test
					$query = pg_query($idconnect,"SELECT id_type_test FROM type_test WHERE label LIKE '%IRM%'");
					$back = pg_fetch_assoc($query);
					$id_type_test = $back['id_type_test'];
					
					//vérification de l'existance d'un test à cette date avec cet expérimentateur
					$query1 = pg_query($idconnect,"SELECT id_test FROM test  WHERE date_test='".$_POST['date']."' AND experimentateur='".$_POST['exp']."' 
					AND id_type_test=$id_type_test");
					$nb1 = pg_num_rows($query1);				
					if($nb1!=0){ // si une date de test avec cet expérimentateur existe déjà
						$back1 = pg_fetch_assoc($query1);  
						$id_test = $back1['id_test'];
					}
					else{ //création de test
						$sql = pg_query($idconnect,"INSERT INTO test (id_type_test,date_test,experimentateur) VALUES ($id_type_test,'".$_POST['date']."',
						'".$_POST['exp']."') RETURNING id_test");
						$insert_row = pg_fetch_row($sql);
						$id_test = $insert_row[0];
					}
					
					//vérification de l'existance de l'id_res
					$query2 = pg_query($idconnect,"SELECT id_res FROM resultat_test WHERE id_test=$id_test AND id_animal=$id_anim");
					$nb2 = pg_num_rows($query2);
					if($nb2!=0){ //si un id_res existe déjà
						$back2 = pg_fetch_assoc($query2);  
						$id_res = $back2['id_res'];
					}
					else{ //création de l'id_res
						$sql = pg_query($idconnect,"INSERT INTO resultat_test (id_test,id_animal) VALUES ($id_test,$id_anim) RETURNING id_res");
						$insert_row = pg_fetch_row($sql);
						$id_res = $insert_row[0];
					}
					
					//vérification de l'existance de l'irm
					$query3 = pg_query($idconnect,"SELECT * FROM irm WHERE id_res=$id_res AND in_vivo='".$_POST['in_vivo']."'");
					$nb3 = pg_num_rows($query3);
					if($nb3!=0){ //si un id_res existe déjà, on update les informations si elles étaient nulles
						$back3 = pg_fetch_assoc($query3);  
						$id_res2 = $back3['id_res'];
						if(!($back3['score']) && !(empty($_POST['score']))){ $sql = pg_query($idconnect,"UPDATE IRM SET score=".htmlspecialchars($_POST['score'])." WHERE id_res=$id_res2");}
						if(!($back3['diagnostic'])){ $sql = pg_query($idconnect,"UPDATE IRM SET diagnostic='".$_POST['diag']."' WHERE id_res=$id_res2");}
						if(!($back3['anatomie_irm'])){ $sql = pg_query($idconnect,"UPDATE IRM SET anatomie_irm='".$_POST['loc']."' WHERE id_res=$id_res2");}
						if(!($back3['localisation_atrophie']) && !(empty($_POST['loca_at']))){ $sql = pg_query($idconnect,"UPDATE IRM SET localisation_atrophie='".htmlspecialchars($_POST['loc_at'])."' WHERE id_res=$id_res2");}
						$message .= "IRM déjà enregistrée, mise à jour. ";
					}
					else{ //création de l'irm
						$sql = pg_query($idconnect,"INSERT INTO IRM (id_res,diagnostic,in_vivo,anatomie_IRM) VALUES ($id_res,
						'".$_POST['diag']."','".$_POST['in_vivo']."','".$_POST['loc']."') RETURNING id_res");
						$insert_row = pg_fetch_row($sql);
						$id_res2 = $insert_row[0];
						if(!(empty($_POST['score']))){$sql = pg_query($idconnect,"UPDATE IRM SET score=".htmlspecialchars($_POST['score'])." WHERE id_res=$id_res2");}
						if(!(empty($_POST['loc_at']))){$sql = pg_query($idconnect,"UPDATE IRM SET localisation_atrophie='".htmlspecialchars($_POST['loc_at'])."' WHERE id_res=$id_res2");}
						$message .= "IRM enregistrée. ";
					}
					
					//fichiers de l'irm
					if(isset($_FILES)){
						//fiche irm
						if(isset($_FILES['fiche']) && !empty($_FILES['fiche']['name'])){
							$fichier = basename($_FILES['fiche']['name']);
							//Mesures de l'IRM	
							$query4 = pg_query($idconnect,"SELECT fiche_IRM FROM irm WHERE id_res=$id_res");
							$nb4 = pg_num_rows($query4);
							if($nb4==0){$message .= "Mesures de l'IRM déjà enregistrées";}
							else{	
								$extensions = array('.xls');
								$dossier ="../../fiche_irm/$id_anim/";
								if(!(is_dir($dossier))){
									mkdir("../../fiche_irm/$id_anim",0777,true);
									$dossier = "../../fiche_irm/$id_anim/";
								}
								// récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
								$extension = strrchr($_FILES['fiche']['name'], '.');
								//Ensuite on teste
								if(!in_array($extension, $extensions)){ //Si l'extension n'est pas dans le tableau
									$erreur = 'Vous devez uploader un fichier de type Excel (xls)';
								}
								if(!isset($erreur)){ //S'il n'y a pas d'erreur, on exécute le script
									if(move_uploaded_file($_FILES['fiche']['tmp_name'], $dossier . $fichier)){ //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
										echo 'Upload effectué avec succès ! ';
										$file="../../fiche_IRM/$fichier";
										//exec("C:\perl\bin\perl.exe C:\wamp\www\base_mmdn\scripts\parse_fiche_IRM.pl $file &");
										exec(PERL_EXEC_FILE_PATH." ".PERL_SCRIPTS_PATH."parse_fiche_IRM.pl {$file} &");
		
										pg_query($idconnect,"UPDATE IRM SET fiche_IRM='$fichier' WHERE id_res=$id_res2");
										$message .= "Mesures de l'IRM enregistrées avec succès";
									}
									else{ //Sinon (la fonction renvoie FALSE).
										echo 'Echec de l\'upload !';
									}
								}									
							}
						}				
						//photos de l'irm			
						if($_POST['nb_photo']!=0){ //si des photos ont été ajoutées
							$extensions = array('.png', '.gif', '.jpg', '.jpeg','.bmp','.tif');
							$date = str_replace('/','.',$_POST['date']);
							$dossier = ROOTPATH."/photos_irm/$date/$id_anim/";
		
							if(!(is_dir($dossier))){
								if(@mkdir("../../photos_irm/$date/$id_anim",0777,true)){}
								$dossier = "../../photos_irm/$date/$id_anim/";
							}
							for($i=1; $i<=$_POST['nb_photo'];$i++){
								foreach($_FILES as $cle=>$value1){
									if($cle=="fichierp$i"){ //si c'est une photo
										$fichier = basename($value1['name']);
										foreach($_POST as $cle2=>$value){ //parcours des post pour récupérer le nom de la photo entré par l'utilisateur
											if($cle2=="nomp$i"){
												//vérification de l'existance de la photo dans la bdd								
												$query4 = pg_query($idconnect,"SELECT id_res,fichier FROM photo_irm WHERE nom_photo='$value' AND id_res=$id_res2");
												$nb4 = pg_num_rows($query4);
												if($nb4!=0){ 
													$back = pg_fetch_assoc($query4);
													if(!$back['fichier']){ //si le nom de la photo est renseigné mais pas son fichier, on update
														$sql = pg_query($idconnect,"UPDATE photo_irm SET fichier='$fichier' WHERE nom_photo='$value' AND id_res=$id_res2");
														$message .= "Photo $fichier enregistrée. "; 
													}
													else{$message .= "Photo $fichier déjà enregistrée. "; }												
												}
												else{ //création de photo_irm et enregistrement de la photo sur le serveur
													// récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
													$extension = strrchr($fichier, '.');
													//Ensuite on teste
													if(!in_array($extension, $extensions)){ //Si l'extension n'est pas dans le tableau
														$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, bmp ou tif';
													}
													if(!isset($erreur)){ //S'il n'y a pas d'erreur, on exécute le script
														if(move_uploaded_file($value1['tmp_name'], $dossier . $fichier)){ //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
															$message .="Photo $fichier enregistrée. ";
															$sql = pg_query($idconnect,"INSERT INTO photo_irm (id_res,nom_photo,fichier) VALUES ($id_res,'$value','$fichier')");	
														}
														else{ //Sinon (la fonction renvoie FALSE)
															$message .= "Echec de l'enregistrement de la photo $fichier. ";
														}
													}
												}
											}
										}
									}
								}
							}
						}
					} 
				}
				else{ $message.= "Date invalide";}
			}
		}
	}
	else{
		header('Location: ../../site.php');
		exit();
	}
				
?>
<!DOCTYPE html>
<html>
	<head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../../style.css" />
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="../../style_ie.css" />
        <![endif]-->
        <title>Base de données microcèbes</title>

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="/js/jquery.min.js"><\/script>')</script>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
		<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
		<script src="../../js/date_picker.js"></script>
        <script src="../../js/verif_form.js"></script>
        <script>
        var num=1;
        $(document).ready(function(){
			//Fonction qui permet d'afficher le nombre de champ par rapport au nombre de photo
			$("#bouton1").click(function () {
				$("<label/>").append("Nom de la photo:").attr("class","label3").insertBefore("#bouton1");
				$("<input/>").attr({class : "box", name : "nomp"+num, type : "text", }).insertBefore("#bouton1");
				$("<span/>").append("* Saisir un nom de photo").attr({class : "code3", id : "erreur_nomp"+num}).insertBefore("#bouton1");
				$("<label/>").append("Fichier:").attr("class","label3").insertBefore("#bouton1");
				$("<input/>").attr({class : "box", name : "fichierp"+num, type : "file", value: "",}).insertBefore("#bouton1");
				$("<span/>").append("* Charger un fichier au format .jpg, .bmp, .jpeg, .tif ou .png").attr({class : "code3", id : "erreur_fichierp"+num, type : "file", }).insertBefore("#bouton1").after("<br/>");
				$("#nb_photo").val(num);
				num++;
			});
		});

		$(function() {
			$( "#datepicker" ).datepicker();
		});
		
		function verif_form(f){ //vérification du formulaire avant l'envoie au serveur
			var dateOk = verifDate(f.date);
			var expOk = verifSelect(f.exp);
			var locOk = verif(f.loc);
			var vivoOk = verifRadio(f.in_vivo);
			var diagOk = verif(f.diag);
			
			var listeExt = new Array('xls');
			var fichierOk = true;
			if(f.fiche.value!=''){
				fichierOk = verifFileExtension(f.fiche,listeExt);
			}
			var photosOk = verif_photo(f,num,"nomp");
			
			if(dateOk && expOk && locOk && vivoOk && diagOk && fichierOk && photosOk){
				return true;
			}
			else{
				alert("Veuillez remplir correctement tous les champs");
				return false;
			}
		}
		
		function verif_photo(f,temp,nomp){//vérification que le champs de nom de photo et l'extension du fichier sont bons
			var cpt=0;
			var listeExt2 = new Array('bmp','jpg','jpeg','png','tif');
			for (var i=1; i<temp; i++){
				var nom = f.elements[nomp+i];
				var fichierOk = verifFileExtension(f.elements["fichierp"+i],listeExt2);
								
				if(fichierOk==true && nom.value==""){
					document.getElementById("erreur_nomp"+i).style.display="inline";
					document.getElementById("erreur_fichierp"+i).style.display="none";
					cpt++;
				}
				else if((fichierOk==true && nom.value!="") || (fichierOk==false && nom.value=="")){
					document.getElementById("erreur_nomp"+i).style.display="none";
					document.getElementById("erreur_fichierp"+i).style.display="none";
				}
				else if(fichierOk==false && nom.value!=""){
					document.getElementById("erreur_fichierp"+i).style.display="inline";
					document.getElementById("erreur_nomp"+i).style.display="none";
					cpt++;
				}
			}
			if(cpt==0){return true;}
			else{return false;}
		}
		</script>
    </head>
    
    <body>
		<?php include((dirname(dirname(dirname(__FILE__))))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Saisie - IRM animal <?php echo $code; ?></h1>
			</header>
			<?php include((dirname(dirname(__FILE__)))."/menu_saisie.php"); ?>
			<section id="animal">
				<section id="contenu">
					<form method="POST" action="" enctype="multipart/form-data" onsubmit="return verif_form(this)">
						<h2>Informations générales</h2>
						<p id="infos_m">
							<label class="code2"><?php echo $message; ?></label><br/>
							<label class="label4">Date du test:</label><input name="date" type="text" id="datepicker" class="box">
							<span class="code3" id="erreur_date">* Champ du type jj/mm/aaaa</span><br/>
							<label class="label4">Expérimentateur:</label><select class="box" name="exp">
							<option value="none">Sélection</option>
								<?php                   									
									//remplissage du select avec la liste des utilisateurs inscrits
									$query = pg_query($idconnect,"SELECT DISTINCT (Prenom, Nom) as name FROM Utilisateur WHERE statut!='Visiteur' AND statut!='Collaborateur extérieur'");
									while ($back = pg_fetch_assoc($query)) {
										$temp =str_replace(',',' ',$back["name"]);
										$temp =str_replace('(','',$temp);
										$temp =str_replace(')','',$temp);
										echo "<option value=\"" . $temp."\">" . $temp."</option>\n";
									}
								?>   		
							</select><span class="code3" id="erreur_exp">* Sélectionner un expérimentateur</span><br/>
							
							<label class="label4">IRM pratiquée in vivo:</label><input type= "radio" name="in_vivo" value="True" class="box">Oui
							<INPUT type= "radio" name="in_vivo" value="False">Non
							<span class="code3" id="erreur_in_vivo">* Cocher une case</span><br/>
							
							<label class="label4">Localisation de l'IRM:</label><input name="loc" type="text" class="box">
							<span class="code3" id="erreur_loc">* Remplir le champ</span><br/>
							
							<label class="label4">Score:</label><input name="score" type="text" class="box">
							<span class="code3" id="erreur_score">* Remplir le champ</span><br/>
							
							<label class="label4">Diagnostic:</label><input name="diag" type="text" class="box">
							<span class="code3" id="erreur_diag">* Remplir le champ</span><br/>
							
							<label class="label4">Localisation de l'atrophie:</label><input name="loc_at" type="text" class="box"><br/>
						</p>
						
						<h2>Photos de l'IRM</h2>
						<p id="photos">							
							<input type="button" name="bouton1" id="bouton1" value="Ajouter une photo">
							<input type="hidden" name="nb_photo" id="nb_photo" value="0"><br/>
						</p>					
																	
						<h2>Mesures de l'IRM</h2>
						<p>
							<label class="label4">Fiche individuelle:</label><input class="box", name="fiche", type="file">
							<span class="code3" id="erreur_fiche">* Veuillez charger un fichier au format Excel(.xls)</span><br/>
						</p>
					
						<input type="submit" class="bouton" value="Valider le test">
					</form>
				</section>
			</section>
		</section>
	</body>
</html>
